package com.kingwood.algorithm.test;

import java.util.HashMap;

/**
 * @Author 22025812
 * @Description: TODO
 * @Date: 2024/3/26 10:55
 * @Modified By：
 * @Version 1.0
 */
// 密码解密
// 给定一段“密文”字符串 s，其中字符都是经过“密码本”映射的，现需要将“密文”解密并输出。
// 映射的规则（'a' ~ 'i'）分别用（'1' ~ '9'）表示；（'j' ~ 'z'）分别用（"10*" ~ "26*"）表示。
// 约束：映射始终唯一。
public class PasswordDecode {

    public static HashMap<String, Character> pdMap = new HashMap<>();

    public static void generatePdMap() {
        for (int i = 1; i <= 26; i++) {
            Character value = (char) ('a' + i -1);
            pdMap.put(String.valueOf(i), value);
        }
    }

    public static String decode(String s) {
        if (s == null || s.length() == 0) {
            return "";
        }

        String[] arr = s.split("\\*");
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            String key = arr[i];
            sb.append(pdMap.get(key));
        }

        return sb.toString();
    }

    public static void main(String[] args) {
         String s = "10*20*21*25*26*9*1*5*18*3*";
//        String s = "20*19*20";
        generatePdMap();
        String res = decode(s);
        System.out.println(res);
    }
}
